package br.ufpe.cin.mac.demo.ImageProcesser.server;

import java.awt.RenderingHints;
import java.awt.image.renderable.ParameterBlock;

import javax.media.jai.RenderedOp;

import br.ufpe.cin.mac.util.Message;

public interface IImageProServer {

	/**
	 * 
	 * Just print the messsage
	 * 
	 * @param msg	Message that will be printed
	 */
	public abstract void Notify(Message msg);

	/**
	 * Retrieves the list of image directories
	 * 
	 * @param pathToDirectory	path that contains the imagens on the server
	 * @return					An array of strings representing the paths
	 * 
	 */
	public abstract String[] getDirectoryListing(String pathToDirectory);

	/**
	 * Retrieves the list of image directories as absolute path
	 *
	 * @param pathToDirectory	path that contains the imagens on the server
	 * @return					An array of strings representing the paths
	 */
	public abstract String[] getPathDirectoryAbsoluteListing(
			String pathToDirectory);

	/**
	 * The main server method.
	 * Do several images tranformation.
	 * 
	 * @param	opName	The operation to be performed on the image.
	 * @param	args	
	 * @param	hints
	 * 
	 * @return			The result of operation.	
	 */
	public abstract RenderedOp create(String opName, ParameterBlock args,
			RenderingHints hints);

}